package com.moli.iov.base.model.dto.req;

import com.moli.iov.base.model.UserDto;
import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import lombok.Data;

/**
 * 报警管理 > 设备变更报警 查询条件
 *
 * @author whl
 */
@Data
public class AlarmEquipmentRecordDto extends UserDto {


  @NotEmpty( message = "报警id不能为空" ,groups = {Update.class,UnauthorizedUpdate.class})
  private String alarmId;
  /**
   * 查询参数（0：车牌号，1：vin）
   */
  private Integer queryParam;
  /**
   * 查询值
   */
  private String queryValue;
  /**
   * 报警类型（1设备更换 2 设备拆除 3 未授权车辆注册）
   */
  private Integer alarmType;
  /**
   * 报警开始时间
   */
  private Date beginTime;

  /**
   * 报警结束时间
   */
  private Date endTime;
  /**
   * 报警状态（0未处理，1已处理）
   */
  private Integer handlingStatus;
  /**
   * 车牌号
   */

  private String license;

  /**
   * 车架号
   */
  @NotBlank(message = "车架号不能为空", groups = {UnauthorizedUpdate.class})
  private String vin;

  /**
   * 品牌
   */
  @NotBlank(message = "品牌code不能为空", groups = {UnauthorizedUpdate.class})
  private String brand;
  /**
   * 车型
   */
  @NotBlank(message = "车型code不能为空", groups = {UnauthorizedUpdate.class})
  private String vehicleType;
  /**
   * 车系
   */
  @NotBlank(message = "车系code不能为空", groups = {UnauthorizedUpdate.class})
  private String vehicleSeries;
  /**
   * 公司名称
   */
  @NotNull(message = "公司id不能为空", groups = {UnauthorizedUpdate.class})
  private Long companyId;
  /**
   * 公司名称
   */
  @NotBlank(message = "公司名称不能为空", groups = {UnauthorizedUpdate.class})
  private String companyName;


  public interface   Update{}

  /**
   * 未授权解除
   */
  public interface   UnauthorizedUpdate{}
}
